import { ApiProp } from "src/decorator/swagger";
import { classDto2Zod } from "src/utils";
import { z } from "zod";

/** 异常信息表 */
export class ErrorMessageDto {
  @ApiProp({ desc: 'id标识', zodType: z.number().int() })
  id!: number

  @ApiProp({ desc: '创建时间', zodType: z.date().or(z.string())
    .transform(date => (Object.prototype.toString.call(date)==='[object Date]') ? date: new Date(date) )
  })
  createTime!: Date

  @ApiProp({ desc: '更新时间', zodType: z.date().or(z.string())
    .transform(date => (Object.prototype.toString.call(date)==='[object Date]') ? date: new Date(date) )
  })
  updateTime!: Date

  @ApiProp({ desc: '日志细分类型', zodType: z.number().int() })
  logType!: number

  @ApiProp({ desc: '错误信息' })
  message!: string

  @ApiProp({ desc: '出现次数', zodType: z.number().int() })
  times!: number
}

/** 代码异常表 */
export const ErrorMessageZod = classDto2Zod(ErrorMessageDto);
